﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Capa_Entidad;
using Negocio.Clases_BL;
using Capa_Negocio_Interface;

namespace Capa_Negocio_Facade
{
    public class FacadeRegistrarMedico : IFacadeRegistrarMedico
    {

        clsMedicoBL _clsMedicoBL = new clsMedicoBL();
        clsEspecialidadBL _clsEspecialidadBL = new clsEspecialidadBL();
        clsGen_EmpleadoBL _clsGen_EmpleadoBL = new clsGen_EmpleadoBL();
        clsPrm_Programacion_MedicaBL _clsPrm_Programacion_MedicaBL = new clsPrm_Programacion_MedicaBL();

        public List<V_Medico_Especialidad> listarMedicoXEspecialidadSinFiltro()
        {
            try
            {
                return _clsMedicoBL.listar_Medico_Especialidad_Sin_Filtro();
            }
            catch (Exception)
            {
                return null;
            }
        }

        public List<GEN_ESPECIALIDAD> listarEspecialidad()
        {
            try
            {
                return _clsEspecialidadBL.listar();
            }
            catch (Exception)
            {
                return null;
            }
        }

        public List<GEN_EMPLEADO> listarEmpleado()
        {
            try
            {
                return _clsGen_EmpleadoBL.listar();
            }
            catch (Exception)
            {
                return null;
            }
        }

        public int UltimoNumeroMedico()
        {
            try
            {
                return _clsMedicoBL.UltimoNumero();
            }
            catch (Exception)
            {
                return -1;
            }
        }

        public List<GEN_MEDICO> listarMedico()
        {
            try
            {
                return _clsMedicoBL.listar();
            }
            catch (Exception)
            {
                return null;
            }
        }

        public List<V_Medico_Especialidad> listarMedicoXEspecialidad(int ID_Medico)
        {
            try
            {
                return _clsMedicoBL.listar_Medico_Especialidad(ID_Medico);
            }
            catch (Exception)
            {
                return null;
            }
        }

        public List<PRM_PROGRAMACION_MEDICA> listarProgramacionMedica()
        {
            try
            {
                return _clsPrm_Programacion_MedicaBL.listar();
            }
            catch (Exception)
            {
                return null;
            }
        }

        public bool InsertarMedico(GEN_MEDICO obj)
        {
            try
            {
                return _clsMedicoBL.Insertar(obj);
            }
            catch (Exception)
            {
                return false;
            }
        }

        public bool InsertarMedicoXEspecialidad(GEN_MEDICO objMedico, GEN_ESPECIALIDAD objEspecialidad, int idEspecialidad)
        {
            try
            {
                return _clsMedicoBL.Insertar_Medico_Especialidad(objMedico, objEspecialidad, idEspecialidad);
            }
            catch (Exception)
            {
                return false;
            }
        }

        public bool ModificarMedico(GEN_MEDICO obj)
        {
            try
            {
                return _clsMedicoBL.Modicar(obj);
            }
            catch (Exception)
            {
                return false;
            }
        }

        public bool EliminarMedico(GEN_MEDICO obj)
        {
            try
            {
                return _clsMedicoBL.Eliminar(obj);
            }
            catch (Exception)
            {
                return false;
            }
        }


    }
}
